import { ref } from 'vue';

// 用户信息接口
interface UserInfo {
    openid?: string;
    nickname?: string;
    avatar?: string;
    token?: string;
    [key: string]: any;
}

// 创建用户状态
export const userInfo = ref<UserInfo>({});
export const isLoggedIn = ref<boolean>(false);

// 设置用户信息
export const setUserInfo = (info: UserInfo) => {
    // 先进行本地存储
    uni.setStorageSync('userInfo', info);
    uni.setStorageSync('isLoggedIn', true);

    // 如果有openId，存储为token
    if (info.openId) {
        uni.setStorageSync('token', info.openId);
    }

    // 最后更新响应式状态
    userInfo.value = info;
    isLoggedIn.value = true;
};

// 清除用户信息
export const clearUserInfo = () => {
    // 先清除存储
    uni.removeStorageSync('userInfo');
    uni.removeStorageSync('isLoggedIn');
    uni.removeStorageSync('token');

    // 再更新响应式状态
    userInfo.value = {};
    isLoggedIn.value = false;
};

// 初始化用户信息（从本地存储恢复）
export const initUserInfo = () => {
    try {
        const storedUserInfo = uni.getStorageSync('userInfo');
        const storedIsLoggedIn = uni.getStorageSync('isLoggedIn');

        console.log('初始化用户信息:', { storedUserInfo, storedIsLoggedIn });

        if (storedUserInfo && storedIsLoggedIn) {
            userInfo.value = storedUserInfo;
            isLoggedIn.value = true;
            console.log('用户信息恢复成功:', userInfo.value);
        } else {
            console.log('没有找到存储的用户信息');
            clearUserInfo();
        }
    } catch (error) {
        console.error('初始化用户信息失败:', error);
        clearUserInfo();
    }
}; 